package com.cleaningcloud.cld.domain;

import com.cleaningcloud.common.core.annotation.Excel;
import com.cleaningcloud.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 资产记录对象 cld_assets_record
 *
 * @author cleaningcloud
 * @date 2024-10-06
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class CldAssetsRecord extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 资产记录ID
     */
    private Long assetsRecordId;

    /**
     * 资产ID
     */
    @Excel(name = "资产ID")
    private Long assetsId;

    /**
     * ID编号(根据资产编号XX+ID编号)唯一
     */
    @Excel(name = "ID编号(根据资产编号XX+ID编号)唯一")
    private String assetsIdCard;

    /**
     * 项目ID
     */
    @Excel(name = "项目ID")
    private Long projectId;

    /**
     * 负责人id
     */
    @Excel(name = "负责人id")
    private Long personId;

    /**
     * 资产状态(1闲置中2投放中3维修中4已报废)
     */
    @Excel(name = "资产状态(1闲置中2投放中3维修中4已报废)")
    private Long recordStatus;


    // 记录上一次状态
    private Long lastStatus;

    /**
     * 投放开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "投放开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date placementStartTime;

    /**
     * 投放结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "投放结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date placementEndTime;

    /**
     * 闲置开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "闲置开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date ldleStartTime;

    /**
     * 闲置结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "闲置结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date ldleEndTime;

    /**
     * 报修时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "报修时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date reportTime;

    /**
     * 报修人ID
     */
    @Excel(name = "报修人ID")
    private Long reportUserId;

    /**
     * 报修描述
     */
    @Excel(name = "报修描述")
    private String reportDesc;

    /**
     * 报修图片组
     */
    @Excel(name = "报修图片组")
    private String reportImgs;

    /**
     * 维修时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "维修时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date repairTime;

    /**
     * 维修人ID
     */
    @Excel(name = "维修人ID")
    private Long repairUserId;

    /**
     * 维修描述
     */
    @Excel(name = "维修描述")
    private String repairDesc;

    /**
     * 维修图片组
     */
    @Excel(name = "维修图片组")
    private String repairImgs;

    /**
     * 损坏状态(1人为损坏2机器故障)
     */
    @Excel(name = "损坏状态(1人为损坏2机器故障)")
    private Long repairStatus;

    /**
     * 维修其他金额
     */
    @Excel(name = "维修其他金额")
    private BigDecimal repairMoney;

    /**
     * 维修配件仓库ID
     */
    @Excel(name = "维修配件仓库ID")
    private Long wareId;

    /**
     * 是否最新记录(0否1是)
     */
    @Excel(name = "是否最新记录(0否1是)")
    private Long isNewUpdate;

    /**
     * 报废时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "报废时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date scrapTime;

    /**
     * 报废人ID
     */
    @Excel(name = "报废人ID")
    private Long scrapUserId;

    /**
     * 报废描述
     */
    @Excel(name = "报废描述")
    private String scrapDesc;

    /**
     * 报废审核人
     */
    @Excel(name = "报废审核人")
    private Long scrapApproveId;

    /**
     * 报废审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "报废审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date scrapApproveTime;

    /**
     * 报废审核状态(1未通过2已通过)
     */
    @Excel(name = "报废审核状态(1未通过2已通过)")
    private Long scrapStatus;

    /**
     * PC端操作人ID
     */
    @Excel(name = "PC端操作人ID")
    private Long operaUserId;

    /**
     * PC端操作时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "PC端操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date operaUserTime;

    /**
     * 备注是否关闭
     */
    @Excel(name = "备注是否关闭")
    private Long flag;


}
